<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>YAMI4 - C++ general-purpose interface: yami::serializable Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">YAMI4 - C++ general-purpose interface
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classyami_1_1serializable.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">yami::serializable Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="yami::serializable" -->
<p>Common interface for serializable data source.  
 <a href="classyami_1_1serializable.html#details">More...</a></p>

<p><code>#include &lt;serializable.h&gt;</code></p>

<p>Inherited by <a class="el" href="classyami_1_1parameters.html">yami::parameters</a>, and <a class="el" href="classyami_1_1raw__buffer__data__source.html">yami::raw_buffer_data_source</a>.</p>

<p><a href="classyami_1_1serializable-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyami_1_1serializable.html#a3ff4c34773a07c7fe6ca6c69cecfae95">serialize_buffer_size</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the total size of serialization buffer.  <a href="#a3ff4c34773a07c7fe6ca6c69cecfae95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyami_1_1serializable.html#a29d694ca5167abacb275f92c61dbf454">serialize</a> (char **buffers, std::size_t *buffer_sizes, std::size_t num_of_buffers) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes current content into given buffer(s).  <a href="#a29d694ca5167abacb275f92c61dbf454"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7609c291bc878d051f79366ff9dbc7b"></a><!-- doxytag: member="yami::serializable::get_core_object" ref="ad7609c291bc878d051f79366ff9dbc7b" args="() const =0" -->
virtual const core::serializable &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyami_1_1serializable.html#ad7609c291bc878d051f79366ff9dbc7b">get_core_object</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the underlying core object. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Serializable data source allows to fill the given set up buffers with binary data that corresponds to the actual data source content. The purpose of this interface is to allow uniform treatment of parameters objects with wrapped raw binary buffers. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3ff4c34773a07c7fe6ca6c69cecfae95"></a><!-- doxytag: member="yami::serializable::serialize_buffer_size" ref="a3ff4c34773a07c7fe6ca6c69cecfae95" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::size_t yami::serializable::serialize_buffer_size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Computes the total size of serialization buffer(s) for the current content of this object. </p>

<p>Implemented in <a class="el" href="classyami_1_1parameters.html#a5ab74ed3f152375a3e5eb8cefbc36bcd">yami::parameters</a>, and <a class="el" href="classyami_1_1raw__buffer__data__source.html#a544ea25acccef519263e9c69450ca855">yami::raw_buffer_data_source</a>.</p>

</div>
</div>
<a class="anchor" id="a29d694ca5167abacb275f92c61dbf454"></a><!-- doxytag: member="yami::serializable::serialize" ref="a29d694ca5167abacb275f92c61dbf454" args="(char **buffers, std::size_t *buffer_sizes, std::size_t num_of_buffers) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void yami::serializable::serialize </td>
          <td>(</td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>buffers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t *&#160;</td>
          <td class="paramname"><em>buffer_sizes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>num_of_buffers</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Serializes the current content of this object into the given buffer(s). The serialization buffer does not have to be contiguous and any number of buffer segments is allowed, provided that the size of each buffer segment is a multiple of 4 (32 bits).<br/>
 The function scatters the serialized data into subsequent buffers as they become filled.<br/>
 The buffers are provided as array of buffer pointers and their sizes. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buffers</td><td>Pointer to the array of buffer pointers (each of type <code>char *</code>). </td></tr>
    <tr><td class="paramname">buffer_sizes</td><td>Pointer to the array of buffer sizes. </td></tr>
    <tr><td class="paramname">num_of_buffers</td><td>Number of buffers described by the array. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classyami_1_1parameters.html#aca93c7e2625a66887fe0767053cc62b9">yami::parameters</a>, and <a class="el" href="classyami_1_1raw__buffer__data__source.html#ac687f0ad5a2e3284e6f2fac3d02205e3">yami::raw_buffer_data_source</a>.</p>

</div>
</div>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceyami.html">yami</a>      </li>
      <li class="navelem"><a class="el" href="classyami_1_1serializable.html">serializable</a>      </li>

    <li class="footer">Generated on Tue Aug 6 2013 22:41:16 for YAMI4 - C++ general-purpose interface by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
